Question Server To Facilitate Communication Between Participants

ABSTRACT

Systems and methods are provided for facilitating contact or communication between users or participants. A profile matching process is performed to match a user profile of a first user to a user profile of a second user. A number of questions to ask the second user are automatically selected. In addition, an answer to one or more of the questions may be suggested to the second user. The questions and any suggested answers are then sent to the second user at an associated user device. A reward to be revealed to the second user in response to answering the questions may also be provided. A summary of the answers given by the second user may be provided to the first user. In response, the first user may choose to share his or her full or partial user profile, contact information, or the like with the second user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/120,676, which was filed May 15, 2008, the disclosure of which ishereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to facilitating contact or communicationbetween users.

BACKGROUND

People often desire to meet new people. Today, a person may meet newpeople via social networking websites, blogs, chat rooms, and the like.Sometimes these electronic encounters occur on desktop and laptopmachines that have rich User Interface (UI) and input capabilities.However, there is an increasing desire to facilitate electronicencounters on resource constrained devices such as mobiletelecommunication devices, Personal Digital Assistants (PDAs), and thelike. In addition, traditional techniques for meeting new people areprimarily manual processes and there is no guarantee that the person andthe new people that he or she has met will be compatible. As such, thereis a need for a system and method for facilitating communication betweencompatible persons and, more particularly, a system and method forfacilitating electronic introductions where aspects of the introductionare automated thereby making them possible in resource constrainedenvironments.

SUMMARY

The present invention relates to facilitating communication betweenusers or participants. Preferably, communication is facilitated usingelectronic introductions via resource constrained devices such as mobilephones, Personal Digital Assistants (PDAs), or the like. In general, aprofile matching process is performed to match a user profile of a firstuser to a user profile of a second user. Then, in order to facilitatecommunication or contact between the first and second users, a number ofquestions are automatically, or programmatically, selected. In oneembodiment, the questions are selected based on common interests of thefirst and second user. In addition, an answer to one or more of thequestions may be suggested to the second user based on information suchas, for example, previous answers given by the second user to the sameor similar questions, information stored in the user profile of thesecond user, historical information stored for the second user, or thelike. The questions and, if available, the suggested answers are thensent to the second user at an associated user device. After thequestions are answered by the second user, a summary of the answersgiven by the second user may be provided to the first user at anassociated user device. In response, the first user may choose to sharehis or her full or partial user profile, contact information, or thelike with the second user. By employing the present invention, userinput such as typing is minimized, thereby reducing the burden onparticipants and maximizing the likelihood of successful matching andcommunication.

In addition, a reward may be sent to the user device of the second userin association with the questions. The reward may be, for example, animage or picture of the first user, a full or partial profile of thefirst user, contact information for the first user, or the like. As thequestions are answered by the second user, the reward is revealed to thesecond user.

Those skilled in the art will appreciate the scope of the presentinvention and realize additional aspects thereof after reading thefollowing detailed description of the preferred embodiments inassociation with the accompanying drawing figures.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The accompanying drawing figures incorporated in and forming a part ofthis specification illustrate several aspects of the invention, andtogether with the description serve to explain the principles of theinvention.

FIG. 1 illustrates a system for facilitating communication between usersaccording to one embodiment of the present invention;

FIG. 2 illustrates an exemplary embodiment of a question in thequestions database of FIG. 1;

FIG. 3 illustrates the operation of the system of FIG. 1 according toone embodiment of the present invention;

FIG. 4 illustrates a list of exemplary questions including a techniqueused to suggest answers to the exemplary questions according to oneembodiment of the present invention;

FIG. 5 illustrates the operation of the system of FIG. 1 according toanother embodiment of the present invention;

FIG. 6 illustrates an exemplary embodiment of reward informationproviding a reward to be revealed to a user in response to answeringquestions according to one embodiment of the present invention;

FIGS. 7A and 7B illustrate exemplary reward states for a reward revealedto a user in response to the user answering questions according to oneembodiment of the present invention;

FIGS. 8-12 illustrate reward states for additional exemplary distortionalgorithms;

FIG. 13 is a block diagram of the central server of FIG. 1 according toone embodiment of the present invention; and

FIG. 14 is a block diagram of one of the user devices of FIG. 1according to one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

FIG. 1 illustrates an exemplary system 10 for facilitating contact orcommunication between users according to one embodiment of the presentinvention. In general, the system 10 includes a central server 12 and anumber of user devices 14-1 through 14-N having associated users 16-1through 16-N. The central server 12 and the user devices 14-1 through14-N are connected via a network 18. The network 18 may be any type ofWide Area Network (WAN), Local Area Network (LAN), or the like, or anycombination thereof, and may include wired components, wirelesscomponents, or both wired and wireless components. Note that while thecentral server 12 is illustrated as a single server, the central server12 may alternatively be implemented as multiple servers having thefunctionality of the central server 12 distributed thereon. As anotheralternative, all or a portion of the functionality of the central server12 may be distributed among the user devices 14-1 through 14-N.

The central server 12 includes a contact initiator 20, a profilematching function 22, a question selection function 24, and an answerrecommendation function 26. The central server 12 also includes a useraccounts database 28 including a user account 30 for each of the users16-1 through 16-N and a questions database 32 including a number ofquestions 34. The contact initiator 20 may be implemented in software,hardware, or a combination thereof. In general, the contact initiator 20coordinates operation of the profile matching function 22, the questionselection function 24, and the answer recommendation function 26 tofacilitate communication between the users 16-1 through 16-Nautomatically or upon request. For example, in one embodiment, thecontact initiator 20 interacts with the profile matching function 22 toautomatically identify two users from the users 16-1 through 16-N havingmatching, or similar, user profiles. The contact initiator 20 may thenautomatically facilitate communication between the two users or ask oneor both of the two users if they wish to allow the contact initiator 20to facilitate communication between them. As another example, the user16-1, for example, may send a request to the contact initiator 20 viathe user device 14-1 to initiate the process for facilitatingcommunication between the user 16-1 and another user from the users 16-2through 16-N at the user device 14-1.

The profile matching function 22 may be implemented in software,hardware, or a combination thereof. The profile matching function 22generally operates to identify users from the users 16-1 through 16-Nhaving matching user profiles. As used herein, two user profiles arematching if they match to at least a desired degree, where the desireddegree is preferably defined by one or more matching rules. As discussedbelow, the user accounts 30 of the users 16-1 through 16-N include userprofiles of the users 16-1 through 16-N. In one embodiment, if there isa request from, for example, the user 16-1 to facilitate communicationwith another user, the profile matching function 22 may operate toperform a matching process to identify a user profile of another userfrom the users 16-2 through 16-N that matches the user profile of theuser 16-1. Note that, in addition to the user profiles, additionalcriteria such as, for example, location may also be considered. Inanother embodiment, upon initiation by the contact initiator 20, theprofile matching function 22 may perform a profile matching process onthe user profiles of the users 16-1 through 16-N to identify one or morepairs of users having matching, or similar, user profiles. Again, notethat, in addition to the user profiles, additional criteria such as, forexample, location may also be considered.

The question selection function 24 may be implemented in software,hardware, or a combination thereof. Once a pair of users having matchinguser profiles is identified, the question selection function 24generally operates to select one or more questions to ask one or both ofthose users. In one embodiment, each of the questions 34 is tagged orassociated with one or more keywords identifying or describing a subjectmatter of the question 34. The question selection function 24 identifiescommon interests of the pair of users and then selects one or more ofthe questions 34 associated with keywords corresponding to the commoninterests of the pair of users.

The answer recommendation function 26 may also be implemented insoftware, hardware, or a combination thereof. The answer recommendationfunction 26 generally operates to recommend, or suggest, answers toquestions to be asked of the users 16-1 through 16-N. In one embodiment,the answer recommendation function 26 operates to suggest answers toquestions to be sent to, for example, the user 16-1 based on previousanswers given by the user 16-1 to the same or similar questions,information stored in the user accounts 30 of the user 16-1 such as theuser profile of the user 16-1, or historical or usage information suchas, for example, a play history identifying songs or other media itemsplayed by the user 16-1, a purchase history identifying songs or othermedia items recently purchased by the user 16-1, a web browsing historyof the user 16-1, a listing of events such as concerts attended by theuser 16-1, a listing of movies recently seen by the user 16-1, or thelike.

The user accounts database 28 generally operates to store a user account30 for each of the users 16-1 through 16-N registered with the system10. Using the user 16-1 as an example, the user account 30 of the user16-1 generally includes a user profile of the user 16-1. The userprofile may include, for example, an image or picture of the user 16-1,contact information for the user 16-1 such as an email address,username, telephone number, or the like. The user profile may alsoinclude demographic information such as sex, age, height, weight, or thelike.

In addition to the user profile, the user account 30 of the user 16-1may include information identifying one or more interests of the user16-1. In one embodiment, the interests may be expressed as one or morekeywords associated with subject matter or topics that are of interestto the user 16-1. However, the present invention is not limited thereto.In addition, the user account 30 may include answers provided toprevious questions asked of the user 16-1. As discussed below, in oneembodiment, the answers provided to previous questions may be used tosuggest answers to the same or similar questions to be asked of the user16-1 in the future.

Still further, the user account 30 may include preferences of the user16-1. The preferences may include, for example, an indication as towhether the user 16-1 desires for the central server 12 to initiatecontact with him for the purpose of facilitating contact between theuser 16-1 and another user. Lastly, the user account 30 may also includea current location of the user 16-1 and/or a historical record of thelocation of the user 16-1, where this location information may be usedto assist the profile matching function 22, as discussed below.

The questions database 32 includes a number of questions 34. Thequestions 34 may be system-defined questions, user-defined questions, ora combination thereof. In addition, in this embodiment, the questiondatabase 32 provides a system-wide collection of questions 34 to be usedfor all of the users 16-1 through 16-N. However, in an alternativeembodiment, the questions 34 may be associated with the user accounts 30of the users 16-1 through 16-N. More specifically, using the user 16-1as an example, a number of questions 34 may be included within orreferenced by the user account 30 of the user 16-1 and utilized whenselecting questions 34 to ask another user when contact is beinginitiated between the user 16-1 and the other user. Again, the questions34 associated with the user account 30 of the user 16-1 may besystem-defined questions, questions defined by the user 16-1, or acombination thereof.

In order to track the locations of the users 16-1 through 16-N, thecentral server 12 may also includes a location tracking function 36. Thelocation tracking function 36 may be implemented in software, hardware,or a combination thereof. In general, the location tracking function 36operates to obtain the locations of the users 16-1 through 16-N from theuser devices 14-1 through 14-N. In one embodiment, the location trackingfunction 36 polls the user devices 14-1 through 14-N for their locationsperiodically or as otherwise desired. In another embodiment, the userdevices 14-1 through 14-N periodically provide their locations to thelocation tracking function 36. As yet another embodiment, the userdevices 14-1 through 14-N may provide their initial locations to thelocation tracking function 36 and thereafter send updates as theirlocations change. As discussed above, the locations of the users 16-1through 16-N may be stored in the user accounts 30 of the users 16-1through 16-N in the user accounts database 28. In addition, the useraccounts 30 of the users 16-1 through 16-N may include historicalrecords of the locations of the users 16-1 through 16-N for at least apredetermined amount of time such as, for example, the previous day, theprevious week, the previous month, or the like.

The user devices 14-1 through 14-N are preferably mobile devices havingnetwork capabilities. For example, the user devices 14-1 through 14-Nmay each be a mobile telephone such as an Apple® iPhone. However, thepresent invention is not limited to mobile devices. The user devices14-1 through 14-N may also be, for example, personal computers or thelike. In this embodiment, the user device 14-1 includes a client 38-1and a location determination function 40-1. Likewise, the user devices14-2 through 14-N include clients 38-2 through 38-N and locationdetermination functions 40-2 through 40-N, respectively.

The client 38-1 may be implemented in software, hardware, or acombination thereof. In general, the client 38-1 operates to enableinitiation of contact between the user 16-1 and other users from theusers 16-2 through 16-N. The location determination function 40-1 may beimplemented in hardware, software, or a combination thereof. In general,the location determination function 40-1 is any hardware device and/orsoftware application that is capable of determining a location of theuser device 14-1, and thus the location of the user 16-1. In oneembodiment, the location determination function 40-1 is a GlobalPositioning System (GPS) receiver or similar Satellite PositioningSystem (SPS) receiver. In another embodiment, the location determinationfunction 40-1 operates to obtain a location of the user device 14-1 froma base station of a cellular telecommunications network. Note that thesetwo exemplary embodiments of the location determination function 40-1are not intended to limit the scope of the present invention. Also,while the location determination function 40-1 is illustrated as beingpart of the user device 14-1, the location determination function 40-1may alternatively be an external device connected to the user device14-1 via, for example, a wired connection such as a Universal Serial Bus(USB) or Firewire connection, a local wireless connection such as aBluetooth® connection, or the like.

Before proceeding to discuss the operation of the system 10 of FIG. 1,FIG. 2 illustrates an exemplary embodiment of one the questions 34 ofFIG. 1. As illustrated, the question 34 includes a question body 42, oneor more keywords 44, a point value 46, and optionally a list of possibleanswers 48. The question body 42 includes the text forming the question.For example, the question body 42 may provide the text “Who is yourfavorite music artist or band?”. The one or more keywords 44 identify ordescribe a subject matter of the question 34. The point value 46 is apoint value assigned to the question 34. The point value 46 may be auser-assigned value assigned to the question 34 by the user asking thequestion or a system-assigned value. The question 34 may also include alist of possible answers 48. For example, if the question 34 is amultiple choice question, the list of possible answers 48 includesanswers for the multiple choice question. Note that if there is a listof possible answers 48, different point values 46 may be assigned toeach of the possible answers rather than assigning a single point value46 to the question 34. In this manner, as discussed below, a rewardrevealed in response to a user answering one or more questions 34 may berevealed differently depending on the answers given to the questions 34.Alternatively, one or more desired answers to the question 34 may bedefined. Different point values 46 may be assigned to the desiredanswers as compared to any other answer such that the reward is revealeddifferently depending on whether the user gives a desired answer asopposed to any other answer.

FIG. 3 illustrates the operation of the system 10 of FIG. 1 according toone embodiment of the present invention. First, the user devices 14-1through 14-N, or alternatively the users 16-1 through 16-N, registerwith the central server 12 (steps 100-104). During registration, theuser accounts 30 of the users 16-1 through 16-N are created. Again, theuser accounts 30 of the users 16-1 through 16-N include the userprofiles of the users 16-1 through 16-N, respectively. In addition, theuser accounts 30 of the users 16-1 through 16-N may include informationidentifying one or more interests of the users 16-1 through 16-N,answers to questions previously answered by the users 16-1 through 16-N,and preferences of the users 16-1 through 16-N.

Next, the user devices 14-1 through 14-N may provide their locations, orlocation information, to the central server 12 (steps 106-110). Usingthe user device 14-1 as an example, in one embodiment, the client 38-1(FIG. 1) obtains a location of the user device 14-1 from the locationdetermination function 40-1 and sends the location of the user device14-1 to the location tracking function 36 of the central server 12. Thelocation may be, for example, GPS coordinates, a street address, or thelike. As discussed above, the user devices 14-1 through 14-N may sendtheir locations to the central server 12 automatically. For example, theuser device 14-1 may send an initial location to the central device 12during registration and thereafter provide periodic updates to thecentral server 12 or provide updates to the central server 12 as thelocation of the user device 14-1 changes. As an alternative, the centralserver 12 may poll the user devices 14-1 through 14-N for theirlocations periodically or as otherwise desired. The locations of theuser devices 14-1 through 14-N are stored in the user accounts 30 of thecorresponding users 16-1 through 16-N. As discussed above, the currentlocations of the user devices may be stored as the current locations ofthe users 16-1 through 16-N. In addition, historical records of thelocations of the users 16-1 through 16-N may be stored in thecorresponding user accounts 30.

At this point, in this example, the profile matching function 22 of thecentral server 12 performs a profile matching process (step 112). In oneembodiment, at the request of, for example, the user 16-1, the client38-1 sends a request to the contact initiator 20. In response, thecontact initiator 20 instructs the profile matching function 22 toperform a profile matching process to identify another user from theusers 16-2 through 16-N having a user profile matching the user profileof the user 16-1 to at least a desired degree. In another embodiment,the contact initiator 20 instructs or otherwise configures the profilematching function 22 to perform a profile matching process by whichpairs of users from the users 16-1 through 16-N having matching userprofiles are identified. As stated above, the user profiles of two usersmatch if the user profiles of those users match to at least a desireddegree.

In one embodiment, the profile matching function 22 determines that twouser profiles match to at least a desired degree if one or more definedmatching rules are satisfied. More specifically, the matching rules maystate that in order for two user profiles to match, one or moreidentified entries in the user profiles must match, one or moreidentified entries in the user profiles must be within a defined rangeof one another, or the like. As an example, the matching rules may statethat two user profiles match if the user profiles indicate that the twousers graduated from the same college, the ages of the two users arewithin a defined range of one another, the two users live within adefined range from one another such as within the same city ormetropolitan area, the two users have one or more hobbies in common, andthe two users are of the opposite sex.

In addition, the profile matching function 22 may consider the currentlocations of the users 16-1 through 16-N and/or the historical locationsof the users 16-1 through 16-N. More specifically, in addition to one ormatching rules based on the information stored in the user profiles ofthe users 16-1 through 16-N, the matching rules may also include one ormore location-based rules. As a first example, a location-based rule maystate that, in order for the user profiles of two users to match, thetwo users must currently be at the same location, currently be near thesame location such as within a defined distance from one another, or thelike. As a second example, a location-based rule may state that, inorder for the user profiles of two users to match, the second user ofthe pair must have been located at the current location of the firstuser of the pair at some time in the past; the second user must havebeen near the current location of the first user at some time in thepast; the second user must have been located at the current location ofthe first user within some defined amount of time in the past such as,for example, within the last week, within the last month, or the like;or the second user must have been located near the current location ofthe first user within some defined amount of time in the past.

As a third example, a location-based rule may state that, in order forthe user profiles of two users to match, the first user of the pair musthave been located at the current location of the second user of the pairat some time in the past, the first user must have been near the currentlocation of the second user at some time in the past, the first usermust have been located at the current location of the second user withinsome defined amount of time in the past, or the first user must havebeen located near the current location of the second user within somedefined amount of time in the past. As a fourth example, alocation-based rule may state that, in order for the user profiles oftwo users to match, a historical location of the first user must beessentially equal to a historical location of the second user, ahistorical location of the first user must be near a historical locationof the second user, a historical location of the first user must beessentially equal to a historical location of the second user withinsome defined amount of time in the past, or a historical location of thefirst user must be near a historical location of the second user withinsome defined amount of time in the past. As a final example, alocation-based rule may state that, in order for the user profiles oftwo users to match, the two users must have frequently visited the samelocation or locations near one another or frequently visited the samelocation or locations near one another within a defined amount of timein the past.

The locations and/or historical locations may additionally oralternatively be used prior to the profile matching process in order toreduce the number of user profiles that are considered in the profilematching process. For example, if a profile matching process is to beused to identify a user having a user profile matching that of the user16-1, the profile matching function 22 may first identify one or moreusers from the users 16-2 through 16-N that are currently at the samelocation as the user 16-1, are currently within a defined distance fromthe user 16-1, were at the location of the user 16-1 within a definedamount of time prior the current time, were within a defined distancefrom the location of the user 16-1 within a defined amount of time priorto the current time, frequently visit the current location of the user16-1, frequently visit a location within a defined distance from thecurrent location of the user 16-1, frequently visit a location that isalso frequently visited by the user 16-1, frequently visit a locationthat is within a defined distance from a location frequently visited bythe user 16-1, or the like. The profile matching process 22 may thenperform a profile matching process to identify a user from theidentified subset of the users 16-2 through 16-N having a user profilethat matches the user profile of the user 16-1.

In this example, the profile matching process results in identifying theusers 16-1 and 16-2 as users having matching user profiles. The centralserver 12, and more specifically the contact initiator 20, may then senda notification of the match to the user 16-1 at the user device 14-1(step 114). In response to the notification, the user 16-1 may choose torequest or approve contact initiation with the user 16-2, or denycontact initiation with the user 16-2. A corresponding response is thenprovided to the central server 12 (step 116). The identity of the user16-2 may or may not be revealed to the user 16-1 at this time. Note thatsteps 114 and 116 are optional.

Assuming that initiation of contact is desired, the central server 12then selects one or more questions to ask the user 16-2 on behalf of theuser 16-1 (step 118). More specifically, in this embodiment, the contactinitiator 20 of the central server 12 instructs the question selectionfunction 24 to select one or more questions to ask the user 16-2 onbehalf of the user 16-1. In response, the question selection function 24selects one or more questions 34 from the questions database 32 to askthe user 16-2. In one embodiment, the question selection function 24correlates the interests of the users 16-1 and 16-2 provided in the useraccounts 30 of the users 16-1 and 16-2 to determine one or more keywordscorresponding to the common interests of the users 16-1 and 16-2. Thequestion selection function 24 then selects one or more questions 34from the questions database 32 having keywords 44 (FIG. 2) correspondingto the common interests of the users 16-1 and 16-2. The number ofquestions 34 selected may be limited by a maximum number of questions 34to ask the user 16-2. The maximum number of questions 34 to ask the user16-2 may be a system-defined limit, a limit defined by the user 16-1, alimit defined by the user 16-2, or the like.

Optionally, the central server 12 may then send the selected, orproposed, questions to the user 16-1 at the user device 14-1 (step 120).The user 16-1 may then be enabled to approve the questions 34 selectedby the question selection function 24 of the central server 12, selectone or more of the questions 34 selected by the question selectionfunction 24 to ask the user 16-2, modify the questions 34 selected bythe question selection function 24 to add or remove questions 34, editthe questions 34 selected by the question selection function 24, or thelike. The user device 14-1 then sends a response and a reward to berevealed to the user 16-2 upon answering the questions 34 to the centralserver 12 (step 122). The response may approve the questions 34 selectedby the question selection function 24 of the central server 12, identifya sub-set of the questions 34 selected by the question selectionfunction 24 to ask the user 16-2, include any modifications or edits tothe questions 34 selected by the question selection function 24, or thelike.

In one embodiment, reward information including the reward, or rewarddata, is provided to the central server 12 in association with theresponse of step 122. As discussed below, the reward informationincludes a number of reward states, reward data, and an algorithm or areference to an algorithm to be used to reveal the reward data accordingto the reward states. The user 16-1 may be enabled to select the rewarddata to be revealed to the user 16-2 upon answering the questions 34and/or the algorithm to be used to reveal the reward data.Alternatively, rather than providing the reward information, a referenceto the reward, or reward data, and/or a reference to the algorithm to beused to reveal the reward may be provided in association with theresponse of step 122. As another alternative, rather than the rewardand/or algorithm for revealing the reward being selected by the user16-1, the reward and/or the algorithm may be system-defined andnon-configurable by the user 16-1. Again, note that the reward, orreward data, may be an image of the user 16-1 such as that included inthe user account 30 of the user 16-1, a full or partial version of theuser profile of the user 16-1, contact information for the user 16-1, orthe like.

In this example, in addition to selecting the questions 34 to ask theuser 16-2, the central server 12 may also suggest answers to one or moreof the questions 34 for the user 16-2 (step 124). More specifically, thecontact initiator 20 may instruct the answer recommendation function 26to provide suggested, or recommended, answers to the questions 34 to beasked of the user 16-2, if possible. In one embodiment, answers toprevious questions answered by the user 16-2 are stored in the useraccount 30 of the user 16-2. Thus, if any of the questions 34 havepreviously been answered by the user 16-2, the answer recommendationfunction 26 may provide the previous answers given by the user 16-2 assuggested answers to the corresponding questions 34. In addition oralternatively, if any of the questions 34 can be answered usinginformation stored in the user account 30 of the user 16-2 andspecifically stored in the user profile of the user 16-2, then theanswer recommendation function 26 may obtain suggested answers for thosequestions from the user account 30 of the user 16-2. For example, if oneof the questions 34 asks “What school do you attend?”, then the answerrecommendation function 26 may obtain this information from the userprofile of the user 16-2 and suggest an answer accordingly.

Still further, the user account 30 of the user 16-2 may include usage orhistorical information such as, for example, a play history identifyingsongs or other media items played by the user 16-2, a purchase historyidentifying songs or other media items recently purchased by the user16-2, a web browsing history of the user 16-2, a listing of events suchas concerts attended by the user 16-2, a listing of movies recently seenby the user 16-2, or the like. Thus, as an example, if a question 34asks “Who is your favorite music artist or band?”, then the answerrecommendation function 26 may analyze a play history of the user 16-2and/or a historical record of music purchases made by the user 16-2 tosuggest an answer to the question 34. A list of exemplary questions 34and the manner in which the answer recommendation function 26 maysuggest answers to those questions is provided in FIG. 4. The list alsoincludes the point value 46 and the one or more keywords 44 for eachquestion 34. Note, however, in this example, the questions 34 do notinclude possible answers 48.

Returning to FIG. 3, at this point, the contact initiator 20 of thecentral server 12 sends the selected questions 34, or a modified oredited set thereof, the reward information, and the suggested answers tothe user device 14-2 of the user 16-2 (step 126). The client 38-2 of theuser device 14-2 then presents the questions 34 to the user 16-2 (step128). Thereafter, the client 38-2 receives user input from the user 16-2defining answers to the questions (step 130). As the answers arereceived, the client 38-2 reveals the reward data from the rewardinformation according to the reward states, as discussed below (step132). Note that, in one embodiment, the reward states for the reward aredefined such that the final reward state after answering all of thequestions or answering all of the questions in a manner preferred by theuser 16-1 is the completely revealed reward. In another embodiment, thereward states may be defined such that the final reward state is apartial reward, such as a partial user profile or a partiallyunscrambled image, such that, at most, only a partial reward is revealedto the user 16-2. In this example, a summary of the answers given by theuser 16-2 is returned to the central server 12 (step 134). The centralserver 12 then forwards the summary of the answers given by the user16-2 to the user device 14-1 of the user 16-1 (step 136).

In this example, upon reviewing the summary of the answers given by theuser 16-2, the user 16-1 chooses to reveal his or her full or partialuser profile to the user 16-2. As such, the client 38-1 of the userdevice 14-1 receives user input from the user 16-1 defining whether thefull or partial user profile of the user 16-1 is to be provided to theuser 16-2 (step 138). The client 38-1 of the user device 14-1 then sendsthe full or partial user profile of the user 16-1 to the central server12 (step 140). Alternatively, the client 38-1 may provide instructionsto the central server 12 to share the full or partial user profile ofthe user 16-1 with the user 16-2. The central server 12, and morespecifically the contact initiator 20, then sends the full or partialuser profile of the user 16-1 to the user device 14-2 of the user 16-2(step 142). In addition to sharing his or her full or partial userprofile, the user 16-1 may compose and send a message to the user 16-2,where the message is delivered to the user 16-2 via the central server12. Once the user 16-1 has received the full or partial user profile ofthe user 16-2, the user 16-2 may choose to share his or her full orpartial profile with the user 16-1. In addition or alternatively, theuser 16-2 may choose to establish communication with the user 16-1 viathe central server 12 or traditional communication systems such asemail, phone, messaging, or the like based on the contact information ofthe user 16-1, which is preferably included in the full or partialprofile of the user 16-1.

FIG. 5 illustrates the operation of the system 10 of FIG. 1 according toanother embodiment of the present invention which is substantially thesame as that that discussed above with respect to FIG. 3. However, inthis embodiment, questions 34 are selected and rewards are revealed forboth of the users 16-1 and 16-2 between which contact is initiated. Morespecifically, first, the user devices 14-1 through 14-N, oralternatively the users 16-1 through 16-N, register with the centralserver 12 (steps 200-204). During registration, the user accounts 30 ofthe users 16-1 through 16-N are created. Again, the user accounts 30 ofthe users 16-1 through 16-N include the user profiles of the users 16-1through 16-N, respectively. In addition, the user accounts 30 of theusers 16-1 through 16-N may include information identifying one or moreinterests of the users 16-1 through 16-N, answers to questionspreviously answered by the users 16-1 through 16-N, and preferences ofthe users 16-1 through 16-N. Next, as discussed above, the user devices14-1 through 14-N may provide their locations, or location information,to the central server 12 (steps 206-210).

At this point, in this example, the profile matching function 22 of thecentral server 12 performs a profile matching process, as describedabove (step 212). In one embodiment, at the request of, for example, theuser 16-1, the client 38-1 sends a request to the contact initiator 20.In response, the contact initiator 20 instructs the profile matchingfunction 22 to perform a profile matching process to identify anotheruser from the users 16-2 through 16-N having a user profile matching theuser profile of the user 16-1. In another embodiment, the contactinitiator 20 instructs or otherwise configures the profile matchingfunction 22 to perform a profile matching process by which pairs ofusers from the users 16-1 through 16-N having matching user profiles areidentified. As stated above, the user profiles of two users match if theuser profiles of those users match to at least a desired degree.

In this example, the profile matching process results in identifying theusers 16-1 and 16-2 as users having matching user profiles. The centralserver 12, and more specifically the contact initiator 20, may then sendnotifications of the match to the users 16-1 and 16-2 at the userdevices 14-1 and 14-2, respectively (steps 214 and 216). In response tothe notification, the user 16-1 may choose to request or approve contactinitiation with the user 16-2, or deny contact initiation with the user16-2, and a corresponding response is provided to the central server 12(step 218). The identity of the user 16-2 may or may not be revealed tothe user 16-1 at this time. Likewise, in response to the notification,the user 16-2 may choose to request or approve contact initiation withthe user 16-1, or deny contact initiation with the user 16-1, and acorresponding response is provided to the central server 12 (step 220).Note that steps 214 through 220 are optional.

Assuming that initiation of contact is desired, the central server 12then selects one or more questions to ask the user 16-2 on behalf of theuser 16-1 as well as one or more questions to ask the user 16-1 onbehalf of the user 16-2 (step 222). In one embodiment, the samequestions are selected for both the users 16-1 and 16-2. Morespecifically, the contact initiator 20 of the central server 12 mayinstruct the question selection function 24 to select one or morequestions 34 to ask the users 16-1 and 16-2. In response, the questionselection function 24 selects one or more questions 34 from thequestions database 32 to ask the users 16-1 and 16-2. In one embodiment,the question selection function 24 correlates the interests of the users16-1 and 16-2 to determine one or more keywords corresponding the commoninterests of the users 16-1 and 16-2. The question selection function 24then selects one or more questions 34 from the questions database 32having corresponding keywords 44 (FIG. 2). The number of questions 34selected may be limited by a maximum number of questions 34 to ask theusers 16-1 and 16-2. The maximum number of questions 34 to ask the users16-1 and 16-2 may be a system-defined limit, a limit defined by theusers 16-1 and 16-2, or the like.

In another embodiment, different questions 34 may be selected for eachof the users 16-1 and 16-2. More specifically, in this embodiment, thecontact initiator 20 of the central server 12 may first instruct thequestion selection function 24 to select one or more questions to askthe user 16-2 on behalf of the user 16-1 as well as one or morequestions to ask the user 16-1 on behalf of the user 16-2. In response,the question selection function 24 selects one or more questions 34 fromthe questions database 32 to ask the user 16-2 as well as one or morequestions to ask the user 16-1. In one embodiment, the questionselection function 24 correlates the interests of the users 16-1 and16-2 to determine one or more keywords corresponding the commoninterests of the users 16-1 and 16-2. The question selection function 24then selects one or more questions 34 from the questions database 32having corresponding keywords 44 as questions 34 to ask the user 16-1.Likewise, the question selection function 24 selects one or morequestions 34 from the questions database 32 having correspondingkeywords 44 as questions 34 to ask the user 16-2. There may or may notbe some overlap in the questions 34 selected for the users 16-1 and16-2. For example, in this embodiment, if both users 16-1 and 16-2 areto be asked three questions, the users 16-1 and 16-2 are not asked thesame three questions 34. However, one or two of the questions 34 but notall three questions 34 may be the same for both of the users 16-1 and16-2. Again, the number of questions 34 selected for each of the users16-1 and 16-2 may be limited by a maximum number of questions 34 to askthe users 16-1 and 16-2. The maximum number of questions 34 to ask eachof the users 16-1 and 16-2 may be a system-defined limit, a limitdefined by the user 16-1, a limit defined by the user 16-2, or the like.

Optionally, the central server 12 may then send the selected, orproposed, questions 34 to ask the user 16-2 to the user 16-1 at the userdevice 14-1 (step 224). Likewise, the central server 12 may send theselected, or proposed, questions 34 to ask the user 16-1 to the user16-2 at the user device 14-2 (step 226). The user 16-1 may then beenabled to approve the questions 34 selected by the question selectionfunction 24 to ask the user 16-2, select one or more of the questions 34selected by the question selection function 24 to ask the user 16-2,modify or edit the questions 34 selected by the question selectionfunction 24 to ask the user 16-2, or the like. The user device 14-1 thensends a response and a reward to be revealed to the user 16-2 uponanswering the questions 34 (step 228). The response may approve thequestions 34 selected by the question selection function 24 to ask theuser 16-2, identify a sub-set of the questions 34 selected by thequestion selection function 24 to ask the user 16-2, include anymodifications or edits to the questions 34 selected by the questionselection function 24 to ask the user 16-2, or the like.

In one embodiment, reward information including the reward, or rewarddata, is provided to the central server 12 in association with theresponse of step 228. As discussed below, the reward informationincludes a number of reward states, reward data, and an algorithm or areference to an algorithm to be used to reveal the reward data accordingto the reward states. The user 16-1 may be enabled to select the rewarddata to be revealed to the user 16-2 upon answering the questions 34and/or the algorithm to be used to reveal the reward data.Alternatively, rather than providing the reward information, a referenceto the reward, or reward data, and/or a reference to the algorithm to beused to reveal the reward may be provided in association with theresponse of step 228. As another alternative, rather than the rewardand/or algorithm for revealing the reward being selected by the user16-1, the reward and/or the algorithm may be system-defined andnon-configurable by the user 16-1. Again, note that the reward, orreward data, may be an image of the user 16-1 such as that included inthe user account 30 of the user 16-1, a full or partial version of theuser profile of the user 16-1, contact information for the user 16-1, orthe like.

Like the user 16-1, the user 16-2 may also be enabled to approve thequestions 34 selected by the question selection function 24 to ask theuser 16-1, select one or more of the questions 34 selected by thequestion selection function 24 to ask the user 16-1, modify or edit thequestions 34 selected by the question selection function 24 to ask theuser 16-1, or the like. The user device 14-2 then sends a response and areward to be revealed to the user 16-1 upon answering the questions 34(step 230). The response may approve the questions 34 selected by thequestion selection function 24 to ask the user 16-1, identify a sub-setof the questions 34 selected by the question selection function 24 toask the user 16-1, include any modifications or edits to the questions34 selected by the question selection function 24 to ask the user 16-1,or the like.

Again, in one embodiment, reward information including the reward, orreward data, is provided to the central server 12 in association withthe response of step 230. As discussed below, the reward informationincludes a number of reward states, reward data, and an algorithm or areference to an algorithm to be used to reveal the reward data accordingto the reward states. The user 16-2 may be enabled to select the rewarddata to be revealed to the user 16-1 upon answering the questions 34and/or the algorithm to be used to reveal the reward data.Alternatively, rather than providing the reward information, a referenceto the reward, or reward data, and/or a reference to the algorithm to beused to reveal the reward may be provided in association with theresponse of step 230. As another alternative, rather than the rewardand/or algorithm for revealing the reward being selected by the user16-2, the reward and/or the algorithm may be system-defined andnon-configurable by the user 16-2. Again, note that the reward, orreward data, may be an image picture of the user 16-2 such as thatincluded in the user account 30 of the user 16-2, a full or partialversion of the user profile of the user 16-2, contact information forthe user 16-2, or the like.

In this example, in addition to selecting the questions 34 to ask theusers 16-1 and 16-2, the central server 12 may also suggest answers toone or more of the questions 34 for the users 16-1 and 16-2 (step 232).More specifically, the contact initiator 20 may instruct the answerrecommendation function 26 to provide suggested, or recommended, answersto the questions 34 to be asked of the users 16-1 and 16-2, if possible.In one embodiment, answers to previous questions answered by the users16-1 and 16-2 are stored in the user accounts 30 of the users 16-1 and16-2. Thus, if any of the questions 34 that the user 16-1 is to be askedhave previously been answered by the user 16-1, the answerrecommendation function 26 may provide the previous answers given by theuser 16-1 as suggested answers to the corresponding questions 34.Likewise, if any of the questions 34 that the user 16-2 is to be askedhave previously been answered by the user 16-2, the answerrecommendation function 26 may provide the previous answers given by theuser 16-2 as suggested answers to the corresponding questions 34.

In addition or alternatively, if any of the questions 34 can be answeredusing information stored in the user accounts 30 of the users 16-1 and16-2 and specifically stored in the user profiles of the users 16-1 and16-2, then the answer recommendation function 26 may obtain suggestedanswers for those questions 34 from the user accounts 30 of the users16-1 and 16-2. For example, if one of the questions 34 for the user 16-1asks “What school do you attend?”, then the answer recommendationfunction 26 may obtain this information from the user profile of theuser 16-1 and suggest an answer accordingly. Still further, the useraccounts 30 of the users 16-1 and 16-2 may include usage or historicalinformation such as, for example, play histories identifying songs orother media items played by the users 16-1 and 16-2, purchase historiesidentifying songs or other media items recently purchased by the users16-1 and 16-2, web browsing histories of the users 16-1 and 16-2,listings of events such as concerts attended by the users 16-1 and 16-2,listings of movies recently seen by the users 16-1 and 16-2, or thelike. Thus, as an example, if a question 34 for the user 16-1 asks “Whois your favorite music artist or band?”, then the answer recommendationfunction 26 may analyze a play history of the user 16-1 and/or ahistorical record of music purchases made by the user 16-1 to suggest ananswer to the question 34.

At this point, the contact initiator 20 of the central server 12 sendsthe selected questions 34 to ask the user 16-2, or a modified or editedset thereof, the reward information for the user 16-2, and the suggestedanswers for the user 16-2 to the user device 14-2 of the user 16-2 (step234). In response, the client 38-2 of the user device 14-2 presents thequestions 34 to the user 16-2 (step 236). Thereafter, the client 38-2receives user input from the user 16-2 defining answers to the questions(step 238). As the answers are received, the client 38-2 reveals thereward data from the reward information according to the reward states,as discussed below (step 240).

Likewise, the contact initiator 20 of the central server 12 sends theselected questions 34 to ask the user 16-1, or a modified or edited setthereof, the reward information for the user 16-1, and the suggestedanswers for the user 16-1 to the user device 14-1 of the user 16-1 (step242). In response, the client 38-1 of the user device 14-1 presents thequestions 34 to the user 16-1 (step 244). Thereafter, the client 38-1receives user input from the user 16-1 defining answers to the questions34 (step 246). As the answers are received, the client 38-1 reveals thereward data from the reward information according to the reward states,as discussed below (step 248).

In this example, a summary of the answers given by the user 16-2 isreturned to the central server 12 (step 250). The central server 12 thenforwards the summary of the answers given by the user 16-2 to the userdevice 14-1 of the user 16-1 (step 252). Likewise, a summary of theanswers given by the user 16-1 is returned to the central server 12(step 254). The central server 12 then forwards the summary of theanswers given by the user 16-1 to the user device 14-2 of the user 16-2(step 256).

While not shown, as discussed above, upon reviewing the summary of theanswers given by the user 16-2, the user 16-1 may choose to reveal hisor her full or partial user profile to the user 16-2. Likewise, uponreviewing the summary of the answers given by the user 16-1, the user16-2 may choose to reveal his or her full or partial user profile to theuser 16-1. Once the users share their full or partial user profiles, theusers 16-1 and 16-2 may initiate communication using, for example,email, telephone, messaging, or the like based on contact informationcontained in the full or partial user profiles.

FIG. 6 illustrates reward information 50 that may be used when revealinga reward in response to answering questions according to one embodimentof the present invention. The reward information 50 includes a number ofreward states 52-1 through 52-M, reward data 54, and an algorithm 56 forrevealing the reward data 54 according to the reward states 52-1 through52-N. The reward states 52-1 through 52-M each includes reveal settings58 and a reveal value 60. The reveal settings 58 and the reveal value 60are inputs to the algorithm 56 to control the revealing of the rewarddata 54. When revealing the reward data 54 in response to the answeringof questions, a reward state is selected from the reward states 52-1through 52-M based on the point value 46 (FIG. 2) or an accumulatedpoint value for the questions 34 answered by the user.

Using the user 16-2 as an example, in one embodiment, the number ofreward states M is equal to a total number of points that may beaccumulated by the user 16-2 answering the questions 34 selected for theuser 16-2. In one embodiment, the total number of points that may beaccumulated is the sum of the point values 46 of the questions 34selected to ask the user 16-2. The reveal values 60 of the reward states52-1 through 52-M correspond to potential accumulated point values. Forexample, if the total number of points that may be accumulated by theuser 16-2 by answering the questions 34 is ten (10), then there may beeleven (11) reward states 52-1 through 52-11 with reveal values 60 ofzero (0) through (10), respectively. The reveal settings 58 of thereward states 52-1 through 52-11 are inputs to the algorithm 56 andcontrol the revealing of the reward data 54. Thus, if the reward data 54is an image of the user 16-1, the algorithm 56 may be an algorithm fordistorting the image. The reveal settings 58 for each reward state 52-1through 52-11 control the amount of distortion, with the reward state52-1 causing a maximum distortion, the reward state 52-11 causing aminimum or no distortion, and the reward states 52-2 through 52-10causing intermediate levels of distortion. Thus, before any questions 34are answered by the user 16-2, the reward is in the reward state 52-1such that the image, or reward data 54, is presented with a maximumamount of distortion. After the user 16-2 answers the first question 34,the point value 46 for the first question 34 is used to select one ofthe reward states 52-1 through 52-11 having a reveal value 60corresponding to the point value 46 of the first question 34. After theuser 16-2 answers the second question 34, the sum of the point values 46of the first and second questions 34 is used to select one of the rewardstates 52-1 through 52-11 having a reveal value 60 corresponding to thesum of the point values 46 of the first and second questions 34. Theprocess continues to reveal the reward data 54 as the user 16-2 answersthe remaining questions 34.

FIG. 7A illustrates the reveal settings 58 in an embodiment where thereare three reward states 52-1 through 52-3, the reward data 54 is animage, and the algorithm 56 is an algorithm for scrambling or distortingthe image. As shown, the image is divided into a number of blocksnumbered one (1) through sixteen (16). The reveal settings 58 providethe arrangement of the blocks of the image. The corresponding versionsof the image, or reward data 54, provided by the algorithm 56 for eachof the reward states 52-1 through 52-3 are illustrated in FIG. 7B. Asshown, in the reward state 52-1, the image is severely distorted. In thereward state 52-2, the image is less distorted. Lastly, in the rewardstate 52-3, the image is non-distorted or has no distortion. FIGS. 8through 12 illustrate exemplary alternative algorithms for distortingthe image of FIG. 7B. Note that the examples given above with respect toFIGS. 7A, 7B, and 8-12 are exemplary and not intended to limit the scopeof the present invention.

FIG. 13 is a block diagram of the central server 12 of FIG. 1 accordingto one embodiment of the present invention. In general, the centralserver 12 includes a control system 62 having associated memory 64. Inone embodiment, contact initiator 20, the profile matching function 22,the question selection function 24, the answer recommendation function26, and the location tracking function 36 are implemented in softwareand stored in the memory 64. However, the present invention is notlimited thereto. The contact initiator 20, the profile matching function22, the question selection function 24, the answer recommendationfunction 26, and the location tracking function 36 may each beimplemented in software, hardware, or a combination thereof. The centralserver 12 may also include one or more digital storage devices 66 suchas, for example, one or more hard disk drives. The one or more digitalstorage devices 66 may be used to store the user accounts database 28and the questions database 32. The central server 12 also includes acommunication interface 68 that communicatively couples the centralserver 12 to the network 18 (FIG. 1). Lastly, the central server 12 mayinclude a user interface 70, which may include components such as adisplay, one or more user input devices, or the like.

FIG. 14 is a block diagram of the user device 14-1 according to oneembodiment of the present invention. This discussion is equallyapplicable to the other user devices 14-2 through 14-N. In general, theuser device 14-1 includes a control system 72 having associated memory74. In one embodiment, the client 38-1 (FIG. 1) is implemented insoftware and stored in the memory 74. However, the present invention isnot limited thereto. The client 38-1 may be implemented in software,hardware, or a combination thereof. The user device 14-1 also includesthe location determination function 40-1. The user device 14-1 may alsoinclude one or more digital storage devices 76 such as, for example, oneor more hard disk drives. The user device 14-1 also includes acommunication interface 78 communicatively coupling the user device 14-1to the network 18 (FIG. 1). Lastly, the user device 14-1 may include auser interface 80, which may include components such as a display, oneor more user input devices, or the like.

Those skilled in the art will recognize improvements and modificationsto the preferred embodiments of the present invention. All suchimprovements and modifications are considered within the scope of theconcepts disclosed herein and the claims that follow.

What is claimed is:
 1. A system comprising: a communication interfacecommunicatively coupling the system to a plurality of user devices of aplurality of users via a network; at least one hardware processor; andmemory containing software executable by the at least one processor,whereby the system is operative to: receive a request from a first userto initiate contact with another user; in response to receiving therequest: determine whether at least one location-based rule that definesa location-based relationship between the first user and the second useris satisfied; if the at least one location-based rule that defines alocation-based relationship between the first user and the second useris satisfied, perform a profile matching process to a user profile of asecond user of the plurality of users that matches the user profile ofthe first user to a defined degree; notify the first user at a userdevice associated with the first user that another user having amatching user profile has been identified; notify the second user at theuser device associated with the second user that another user having amatching user profile has been identified; receive authorization fromboth the first and second users; in response to receiving theauthorization from the first and second users: automatically andpreferentially select at least one question to ask the second user onbehalf of the first user; and provide the at least one question to thesecond user at a user device of the plurality of user devices associatedwith the second user.